// console.log("函数作为返回值");
// function create() {
//   let a = 100;
//   return function () {
//     console.log(a);
//   };
// }

// let fn = create();
// let a = 200;
// fn(); //100

console.log("===========================");
console.log("函数作为参数");

function print(fn2) {
  let b = 200;
  fn2();
}

let b = 300;
function fn2() {
  console.log(b);
}
print(fn2); // 300
// **所有的自由变量的查找，是在函数定义的地方，向上级作用域查找，不是在执行的地方**
